//
//  UIImage+Extension.swift
//  WeiBo
//
//  Created by Eric on 2017-01-12.
//  Copyright © 2017 Eric. All rights reserved.
//

import UIKit

extension UIImage {
    class func  snapShotCurrentWindow() -> UIImage {
        //截屏
        let window = UIApplication.shared.keyWindow!
        //开启图片的上下文
        UIGraphicsBeginImageContextWithOptions(window.frame.size, false, 0)
        //将当前的window绘制到图形的上下文
        window.drawHierarchy(in: window.frame, afterScreenUpdates: true)
        //从图片的上下文中获取图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        //关闭图片的上下文
        UIGraphicsEndImageContext()
        
        return image!
    }
    
    //图片的缩放
    //缩放到指定的宽度
    func scaleImage(width: CGFloat) -> UIImage {
        
        //0. 获取当前图片的宽度和高度
        let imageW = self.size.width
        let imageH = self.size.height
        //1. 先判断当前图片的宽度和指定缩放的宽度之间的关系
        if imageW < width {
            return self
        }
        
        //需要缩放图片
        //2. 根据当前图片的款高比 和 指定缩小的宽度 计算将要等比缩放的高度
        let scaleH = imageH / imageW * width
        let imageBounds = CGRect(x: 0, y: 0, width: width, height: scaleH)
        //3. 开启图形上下文
        UIGraphicsBeginImageContextWithOptions(imageBounds.size, false, 0)
        //4. 将图片对象绘制到图形上下文中
        self.draw(in: imageBounds)
        //5. 从图形上下文中获取缩放的图片对象
        let image = UIGraphicsGetImageFromCurrentImageContext()
        //6. 关闭图形上下文
        UIGraphicsEndImageContext()
        
        return image!
        
    }
}
